온칩 네트워크
1. 개요
1. 개요
온칩 네트워크(Network-on-Chip, NoC)는 시스템 온 칩(SoC) 내부의 여러 코어 또는 IP 블록 간의 통신을 위한 패킷 기반 네트워크 인터커넥트 아키텍처이다. 기존의 공유 버스나 크로스바 방식의 한계를 극복하기 위해 등장했으며, 확장성과 효율성이 뛰어나 다중 코어 시스템 온 칩 내부의 고성능 연결을 제공하는 데 주로 사용된다.
이 기술은 인터넷 프로토콜 제품군과 같은 네트워킹 개념을 칩 설계에 적용한 것으로, 라우터, 링크, 네트워크 인터페이스 등의 구성 요소로 이루어진다. 데이터 전송 방식은 회로 교환, 패킷 교환, 플릿 교환 등이 있으며, 메쉬, 링, 트리, 토러스 등 다양한 네트워크 토폴로지로 구현될 수 있다.
온칩 네트워크는 집적 회로 설계 분야에서 인터커넥트 문제를 해결하는 핵심 기술로 자리 잡았으며, 다중 코어 프로세서, FPGA 기반 가속기, 고성능 임베디드 시스템 등 다양한 응용 분야에서 그 중요성이 계속해서 증가하고 있다.
2. 기본 개념
2. 기본 개념
2.1. 정의와 필요성
2.1. 정의와 필요성
네트워크 온 칩은 시스템 온 칩 내부의 여러 코어 또는 IP 블록 간의 통신을 위한 패킷 기반 네트워크 인터커넥트 아키텍처이다. 이는 단일 칩에 통합된 수십 개 이상의 프로세싱 유닛 간에 효율적인 데이터 전송 경로를 제공하는 것을 목표로 한다.
기존 공유 버스 방식은 확장성에 근본적인 한계가 있다. 버스는 한 번에 하나의 트랜잭션만 처리할 수 있어 코어 수가 증가하면 경합이 심화되고 성능이 저하된다. 또한 글로벌 와이어의 길이 증가로 인한 지연 시간과 전력 소모도 문제가 된다. 이에 반해 네트워크 온 칩은 라우터와 링크로 구성된 네트워크를 통해 병렬 통신을 가능하게 하여 대역폭을 크게 향상시키고, 통신 경로를 분산시켜 확장성과 전력 효율성을 개선한다.
네트워크 온 칩의 도입 필요성은 다중 코어 프로세서와 복잡한 임베디드 시스템의 발전에서 비롯된다. 인공지능 가속기나 고성능 컴퓨팅과 같은 워크로드는 칩 내부의 이기종 컴퓨넌트 간에 막대한 양의 데이터를 저지연으로 교환해야 한다. 네트워크 온 칩은 이러한 요구사항을 충족시키며, 서비스 품질 보장, 내결함성, 그리고 설계 재사용성을 높이는 표준화된 통신 플랫폼을 제공한다.
따라서 네트워크 온 칩은 현대 및 미래의 고집적 반도체 설계에서 버스나 크로스바를 대체할 핵심 인터커넥트 기술로 자리잡고 있다.
2.2. 기존 버스 방식과의 비교
2.2. 기존 버스 방식과의 비교
네트워크 온 칩은 시스템 온 칩 내부의 통신을 위해 기존에 널리 사용되던 공유 버스 방식과는 근본적으로 다른 접근법을 채택한다. 공유 버스는 여러 코어나 IP 블록이 하나의 통신 채널을 경쟁적으로 사용하는 구조로, 단순하고 구현 비용이 낮다는 장점이 있다. 그러나 연결된 코어의 수가 증가할수록 버스 경합이 심화되어 성능이 급격히 저하되며, 확장성에 심각한 한계를 보인다. 또한 글로벌 와이어의 길이 증가로 인한 지연 시간과 전력 소모도 큰 문제로 지적된다.
이에 반해 네트워크 온 칩은 패킷 교환 방식을 기반으로 한 분산형 라우터 기반 네트워크를 구축한다. 각 노드가 라우터를 통해 연결되어 데이터가 패킷 단위로 여러 경로를 통해 전송될 수 있어, 병목 현상이 크게 완화된다. 이는 코어 수가 증가하는 멀티코어 및 매니코어 시스템에서 확장성을 보장하는 핵심 요소이다. 또한 토폴로지와 라우팅 알고리즘을 설계에 따라 최적화할 수 있어, 특정 애플리케이션의 통신 패턴에 맞춰 성능과 전력 효율을 동시에 개선할 수 있다.
결과적으로, 버스 방식은 소규모이거나 통신 부하가 낮은 시스템에 적합한 반면, 네트워크 온 칩은 고성능 컴퓨팅, 인공지능 가속기, 고대역폭이 요구되는 다중 코어 시스템 온 칩과 같은 복잡하고 확장성이 필요한 설계에서 필수적인 인터커넥트 솔루션으로 자리 잡고 있다. 네트워크 온 칩의 도입은 시스템 전체의 처리량 향상과 함께 에너지 효율적인 통신을 가능하게 한다.
3. 구성 요소
3. 구성 요소
3.1. 라우터
3.1. 라우터
라우터는 네트워크 온 칩의 핵심 구성 요소로서, 패킷의 전송 경로를 결정하고 스위칭을 수행하는 지능형 스위치 역할을 한다. 각 라우터는 일반적으로 여러 개의 입력 포트와 출력 포트를 가지며, 연결된 링크를 통해 인접한 라우터나 네트워크 인터페이스와 통신한다. 라우터의 주요 기능은 수신한 패킷의 목적지 주소를 해석하고, 미리 정의된 라우팅 알고리즘에 따라 패킷을 적절한 출력 포트로 전달하는 것이다.
라우터의 내부 구조는 일반적으로 입력 버퍼, 라우팅 로직, 교차바 스위치, 출력 버퍼 등으로 구성된다. 입력 버퍼는 도착한 패킷을 임시 저장하며, 라우팅 로직은 패킷의 헤더를 분석하여 다음 홉을 결정한다. 교차바 스위치는 결정된 경로에 따라 입력 포트와 출력 포트를 연결하며, 출력 버퍼는 스위칭된 패킷이 링크로 전송되기 전에 대기한다. 이러한 구조는 회로 교환 방식보다는 패킷 교환이나 플릿 교환 방식에 더 적합하다. 성능 최적화를 위해 가상 채널을 도입하여 여러 논리적 채널을 하나의 물리적 링크에 다중화함으로써 데드락을 방지하고 링크 활용률을 높일 수 있다.
라우터의 설계는 지연 시간, 처리량, 전력 소모, 면적 오버헤드 등 여러 요소 간의 절충을 요구한다. 고성능을 위해 깊은 파이프라인을 적용할 수 있으나, 이는 지연을 증가시킬 수 있다. 반면, 저전력 설계를 위해 사용 빈도가 낮은 회로 블록의 전원을 차단하는 등의 기법이 사용된다. 또한, 메쉬나 토러스와 같은 특정 토폴로지에 최적화된 라우터 설계가 이루어지기도 한다.
3.2. 네트워크 인터페이스
3.2. 네트워크 인터페이스
네트워크 인터페이스는 온칩 네트워크의 핵심 구성 요소 중 하나로, IP 블록이나 프로세서 코어와 같은 컴퓨팅 자원을 네트워크 패브릭에 연결하는 역할을 한다. 이는 네트워크와 시스템 온 칩 내부의 다양한 기능 블록 사이의 게이트웨이 또는 어댑터로 작동한다. 네트워크 인터페이스의 주요 목적은 IP 블록이 사용하는 트랜잭션 수준의 프로토콜(예: AXI, OCP, DTL)과 패킷 기반의 네트워크 통신 프로토콜 사이의 변환을 수행하는 것이다. 즉, IP 블록에서 발생하는 읽기/쓰기 요청과 데이터를 네트워크를 통해 전송 가능한 패킷으로 분할하고, 반대로 수신된 패킷을 다시 IP 블록이 이해할 수 있는 트랜잭션으로 재조립한다.
이러한 인터페이스의 설계는 온칩 네트워크 패러다임의 성공에 매우 중요하다. 표준화된 네트워크 인터페이스를 사용하면 각 IP 블록의 내부 설계 방식에 영향을 주지 않으면서도 블록의 재사용성을 높이고, 시스템 통합을 크게 단순화할 수 있다. 예를 들어, 마스터 인터페이스와 슬레이브 인터페이스를 모두 가진 IP 블록은 네트워크 인터페이스를 통해 해당 신호를 패킷화하여 네트워크로 전송한다. 이를 통해 서로 다른 벤더나 설계 방식으로 만들어진 IP 블록들도 동일한 온칩 네트워크 인프라 위에서 효율적으로 통신할 수 있게 된다.
네트워크 인터페이스는 일반적으로 패킷화 및 디패킷화 유닛, 흐름 제어 로직, 그리고 때로는 가상 채널 관리 기능을 포함한다. 또한, 서비스 품질 요구사항을 지원하기 위해 트래픽의 우선순위를 지정하거나, 에너지 효율을 위해 링크 상태를 모니터링하는 역할도 담당할 수 있다. 효과적으로 설계된 네트워크 인터페이스는 통신 오버헤드를 최소화하면서도 대역폭과 지연 시간 목표를 충족시키는 데 기여한다.
3.3. 링크
3.3. 링크
링크는 온칩 네트워크에서 물리적 통신 경로를 제공하는 구성 요소이다. 이는 라우터와 네트워크 인터페이스, 또는 라우터와 라우터 사이를 연결하는 전기적 신호선으로 구성된다. 링크는 데이터를 전송하는 매체로서, 패킷이나 플릿 형태의 정보가 통과하는 통로 역할을 한다.
링크의 주요 설계 고려 사항은 대역폭, 지연 시간, 전력 소비, 그리고 물리적 배치이다. 대역폭은 단위 시간당 전송할 수 있는 데이터 양을 결정하며, 링크의 폭(비트 수)과 동작 주파수에 의해 정의된다. 지연 시간은 신호가 링크를 통과하는 데 걸리는 시간으로, 링크의 물리적 길이와 직접적인 관련이 있다. 따라서 링크의 길이를 최소화하는 것은 전체 네트워크의 성능과 에너지 효율성을 높이는 데 중요하다.
에너지 효율성을 높이기 위해, 트래픽이 적은 링크의 전원을 동적으로 차단하는 링크 파워 관리 기법이 사용된다. 또한, 링크의 신호 무결성을 보장하고 크로스토크를 방지하기 위한 신호 무결성 설계도 필수적이다. 링크는 단방향 또는 양방향으로 구성될 수 있으며, 네트워크 토폴로지에 따라 그 연결 구조가 결정된다.
메쉬나 토러스와 같은 일반적인 토폴로지에서 링크는 정형화된 격자 형태로 배치된다. 반면, 애플리케이션 특화형 온칩 네트워크에서는 통신 패턴에 맞춰 링크의 길이와 연결을 최적화하는 비정형 구조가 사용되기도 한다. 링크 설계는 집적 회로의 물리적 제약, 즉 배선 자원과 면적, 전력 예산과 밀접하게 연관되어 있다.
4. 토폴로지
4. 토폴로지
4.1. 메쉬
4.1. 메쉬
메쉬는 온칩 네트워크에서 가장 널리 채택되는 토폴로지 중 하나이다. 이 구조는 격자 형태로 배열된 노드들이 각각 상하좌우의 이웃 노드와 직접 연결되는 형태를 가진다. 각 노드는 일반적으로 하나의 프로세서 코어나 IP 블록에 해당하며, 노드 간의 통신은 이웃한 노드를 통해 단계적으로 전달되는 패킷 교환 방식으로 이루어진다. 이러한 규칙적인 배열 덕분에 메쉬 토폴로지는 물리적 레이아웃이 간단하고 확장성이 뛰어나다는 장점을 가진다.
메쉬 네트워크의 성능은 주로 사용되는 라우팅 알고리즘에 크게 의존한다. 가장 기본적인 방식은 X-Y 라우팅으로, 패킷이 먼저 X축(가로) 방향으로, 그다음 Y축(세로) 방향으로 이동하여 목적지에 도달한다. 이 방식은 구현이 단순하고 교착 상태가 발생하지 않는다는 장점이 있지만, 네트워크의 특정 경로에 트래픽이 집중될 경우 혼잡을 초래할 수 있다. 이를 완화하기 위해 적응형 라우팅 알고리즘이 연구되며, 실시간 트래픽을 분석하여 혼잡이 적은 경로를 동적으로 선택하는 방식이다.
메쉬 토폴로지는 다중 코어 프로세서나 대규모 FPGA 설계와 같이 수십에서 수백 개의 코어를 통합하는 시스템 온 칩에 적합하다. 각 코어가 로컬 통신은 인접 노드를 통해 효율적으로 처리할 수 있기 때문이다. 그러나 코어 수가 매우 많아지고 통신 거리가 길어질수록 패킷이 거쳐야 하는 홉 수가 증가하여 전반적인 지연 시간과 전력 소모가 커지는 단점도 있다. 이러한 한계를 극복하기 위해 가상 채널을 도입하거나 계층적인 메쉬 구조를 사용하는 등의 최적화 기법이 적용된다.
4.2. 링
4.2. 링
링 토폴로지는 네트워크 온 칩에서 사용되는 가장 단순한 형태의 연결 구조 중 하나이다. 이 구성에서는 각 노드가 정확히 두 개의 이웃과 연결되어 하나의 폐쇄된 고리를 형성한다. 데이터 패킷은 이 고리를 따라 시계 방향 또는 반시계 방향으로 전송되며, 출발지에서 목적지까지 도달하기 위해 필요한 만큼의 홉을 거친다. 링 구조는 라우터 설계를 단순화할 수 있으며, 특히 노드 수가 적은 소규모 다중 코어 프로세서나 특정 임베디드 시스템에서 효율적으로 적용될 수 있다.
그러나 링 토폴로지는 확장성에 명확한 한계를 가진다. 노드 수가 증가함에 따라 평균 통신 지연 시간이 선형적으로 증가하게 되어 대규모 시스템 온 칩에는 부적합할 수 있다. 또한 네트워크 내에서 단일 링크에 장애가 발생하면 전체 통신 경로가 차단될 수 있는 취약점도 존재한다. 이러한 한계를 보완하기 위해 다중 링이나 병렬 링과 같은 변형 구조가 연구되기도 하였다. 링 토폴로지는 트리나 메쉬와 같은 다른 구조에 비해 구현이 간단하고 비용이 낮다는 장점이 있지만, 성능과 신뢰성 측면에서의 절충이 필요하다.
4.3. 트리
4.3. 트리
트리 토폴로지는 온칩 네트워크에서 사용되는 네트워크 구조 중 하나로, 계층적인 형태를 띠고 있다. 이 구조는 루트 노드, 내부 노드, 리프 노드로 구성되며, 데이터 패킷이 상위 계층으로 올라갔다가 다시 하위 계층으로 내려가는 방식으로 통신이 이루어진다. 이는 버스나 크로스바와 같은 전통적인 구조에 비해 확장성이 우수하며, 특히 코어 수가 많은 다중 코어 시스템 온 칩 설계에 유리하다.
트리 구조의 주요 장점은 통신 경로의 규칙성과 예측 가능성에 있다. 각 노드는 일반적으로 부모 노드와 여러 자식 노드로 연결되어 있어, 라우팅 결정이 비교적 단순해진다. 또한, 팻 트리와 같은 변형 구조를 통해 루트 노드 근처의 링크 대역폭을 증가시켜 병목 현상을 완화할 수 있다. 이러한 특성으로 인해 트리 토폴로지는 다중 코어 프로세서나 대규모 FPGA 기반 시스템에서 데이터 집중적인 작업을 효율적으로 처리하는 데 적합하다.
그러나 트리 토폴로지도 단점을 가지고 있다. 가장 큰 문제는 루트 노드에 가까울수록 트래픽이 집중되어 혼잡이 발생할 수 있다는 점이다. 루트 노드나 상위 계층의 링크에 장애가 발생하면 네트워크의 상당 부분이 영향을 받을 수 있어 내결함성이 상대적으로 낮다. 따라서 트리 기반 온칩 네트워크를 설계할 때는 이러한 잠재적 병목 지점을 고려하여 대역폭 배분이나 라우팅 알고리즘을 최적화하는 것이 중요하다.
4.4. 토러스
4.4. 토러스
토러스는 온칩 네트워크에서 널리 사용되는 토폴로지 중 하나로, 메쉬 네트워크와 유사한 격자 구조를 가지지만 가장자리 노드들이 반대편 노드들과 래핑 채널로 연결되는 점이 특징이다. 이는 2차원 또는 3차원의 환형 구조를 형성하여 네트워크의 직경을 줄이고 평균 홉 수를 감소시킨다. 결과적으로 토러스 토폴로지는 메쉬에 비해 통신 지연 시간을 개선하고 네트워크 대역폭을 균일하게 분산시키는 이점을 제공한다.
토러스 구조는 각 차원에서 링이 형성되도록 노드를 연결한다. 예를 들어 2차원 토러스에서는 각 행과 각 열이 하나의 링을 구성한다. 이러한 래핑 연결은 네트워크의 대칭성을 높여 모든 노드가 동등한 연결성을 가지도록 하며, 특정 경로에 트래픽이 집중되는 현상을 완화할 수 있다. 이는 다중 코어 프로세서나 FPGA 기반 가속기와 같이 많은 수의 처리 요소가 균일한 통신을 필요로 하는 시스템에 적합하다.
그러나 토러스 토폴로지는 래핑을 위한 추가적인 글로벌 링크가 필요하기 때문에, 메쉬에 비해 물리적 배선이 더 복잡하고 면적 오버헤드가 클 수 있다. 또한 링크 길이가 증가하면 신호 지연과 전력 소모가 늘어나는 문제가 있다. 이러한 설계 복잡성으로 인해 실제 시스템 온 칩 구현에서는 메쉬나 트리 토폴로지가 더 일반적이지만, 고성능 컴퓨팅을 목표로 하는 특정 임베디드 시스템에서는 토러스의 장점을 활용하기도 한다.
5. 라우팅 방식
5. 라우팅 방식
5.1. 회로 교환
5.1. 회로 교환
회로 교환은 온칩 네트워크에서 사용되는 주요 전송 방식 중 하나이다. 이 방식은 데이터 전송을 시작하기 전에 송신 노드와 수신 노드 사이에 전용 통신 경로를 설정한다. 이 경로는 패킷이 전송을 마칠 때까지 독점적으로 유지되며, 이후에 연결이 해제된다. 이는 전화망에서 사용되는 방식과 유사한 개념으로, 연결이 설정되면 일정한 대역폭과 낮은 지연 시간을 보장한다는 특징이 있다.
회로 교환 방식은 특히 실시간성이 요구되거나 데이터 흐름이 연속적인 통신에 적합하다. 경로가 미리 설정되므로 데이터가 순서대로 도착하는 것이 보장되며, 중간 노드에서의 라우팅 결정이나 버퍼링으로 인한 지연이 최소화된다. 이는 오디오 스트리밍이나 특정 제어 시스템과 같은 애플리케이션에서 유리할 수 있다. 그러나 통신 경로를 설정하고 유지하는 데 드는 오버헤드가 존재하며, 경로가 점유된 동안 다른 통신이 해당 링크를 사용할 수 없다는 단점도 있다. 이는 네트워크 자원의 활용률을 저하시킬 수 있다.
온칩 네트워크의 다른 주요 전송 방식인 패킷 교환과 비교할 때, 회로 교환은 예측 가능한 성능을 제공하지만 유연성은 상대적으로 낮다. 패킷 교환은 데이터를 작은 패킷으로 나누어 각각 독립적으로 전송하며, 네트워크 상황에 따라 동적으로 경로가 결정된다. 이에 비해 회로 교환은 초기 설정 후에는 고정된 경로를 사용한다. 현대의 복잡한 다중 코어 프로세서나 이종 컴퓨팅 환경에서는 통신 패턴이 다양하고 동적으로 변하기 때문에, 이러한 고정적 특성으로 인해 회로 교환 방식의 사용은 제한적일 수 있다.
따라서 회로 교환은 특정 유형의 트래픽을 위해 예약된 채널이 필요하거나 매우 낮고 일정한 지연 시간이 필수적인 온칩 네트워크 설계에서 선택적으로 고려된다. 일반적으로 온칩 네트워크는 패킷 교환 또는 플릿 교환을 주된 방식으로 채택하면서, 상황에 따라 다른 방식을 혼용하거나 특수 목적을 위해 회로 교환의 원리를 부분적으로 적용하기도 한다.
5.2. 패킷 교환
5.2. 패킷 교환
패킷 교환은 온칩 네트워크에서 데이터를 전송하는 주요 방식 중 하나이다. 이 방식에서는 전송할 데이터가 여러 개의 작은 패킷으로 나뉘어 네트워크를 통해 독립적으로 전송된다. 각 패킷은 헤더 정보를 포함하며, 헤더에는 목적지 주소와 같은 라우팅에 필요한 정보가 담겨 있다. 네트워크 내의 라우터는 이 헤더 정보를 확인하여 패킷을 다음 경로로 전달한다. 이는 회로 교환 방식과 달리, 통신을 위한 전용 경로를 사전에 설정하지 않고, 네트워크 자원을 동적으로 공유한다는 특징이 있다.
패킷 교환 방식은 온칩 네트워크의 확장성과 효율성을 높이는 데 기여한다. 여러 IP 블록이 동시에 통신할 때, 네트워크 대역폭을 유연하게 공유할 수 있어 트래픽 혼잡을 완화한다. 또한, 특정 링크에 장애가 발생하더라도 패킷은 대체 경로를 통해 목적지에 도달할 수 있어 내결함성을 제공한다. 그러나 패킷이 서로 다른 경로를 통해 전송될 수 있기 때문에, 목적지에서 원래의 순서대로 패킷을 재조립해야 하는 오버헤드가 발생할 수 있다. 이는 네트워크 인터페이스에서 처리되는 일반적인 작업이다.
이 방식은 특히 다중 코어 프로세서나 복잡한 시스템 온 칩 환경에서 효과적이다. 다양한 코어와 가속기 간의 통신 패턴이 예측 불가능하고 동적으로 변할 때, 패킷 교환은 요구되는 통신 대역폭에 맞춰 네트워크 자원을 할당할 수 있다. 플릿 교환은 패킷 교환의 한 변형으로, 패킷을 더 작은 흐름 제어 단위인 플릿으로 분할하여 버퍼 관리 효율성을 높인다. 이러한 패킷 기반의 접근 방식은 기존의 공유 버스나 크로스바 구조에 비해 높은 처리량과 낮은 레이턴시를 달성하는 데 핵심적인 역할을 한다.
5.3. 플릿 교환
5.3. 플릿 교환
플릿 교환은 온칩 네트워크에서 사용되는 데이터 전송 방식 중 하나로, 패킷 교환의 한 변형이다. 이 방식에서는 전송할 데이터 패킷이 더 작은 단위인 플릿(flit)으로 분할되어 네트워크를 통해 순차적으로 전송된다. 각 플릿은 독립적으로 라우팅되지 않고, 패킷의 첫 번째 플릿인 헤드 플릿이 경로를 설정하면, 뒤따르는 바디 플릿과 테일 플릿은 동일한 경로를 따라 흐른다. 이는 회로 교환과 패킷 교환의 장점을 결합한 방식으로 볼 수 있다.
이 방식의 주요 장점은 지연 시간과 버퍼 사용 효율성에 있다. 헤드 플릿만 라우팅 결정을 필요로 하므로 후속 플릿의 처리 오버헤드가 줄어들고, 전체적인 전송 지연이 감소할 수 있다. 또한, 패킷 전체를 저장할 필요 없이 플릿 단위로 버퍼를 관리할 수 있어, 제한된 온칩 메모리 자원을 더 효율적으로 사용할 수 있다. 이는 다중 코어 프로세서나 FPGA 기반 가속기와 같이 많은 수의 IP 블록이 고대역폭 통신을 요구하는 시스템에서 유리하다.
그러나 플릿 교환은 네트워크 혼잡 관리에 주의를 요한다. 한 패킷의 플릿들이 연속된 경로를 점유하기 때문에, 헤드 플릿이 차단되면 뒤따르는 모든 플릿의 진행도 멈추게 되어 홉 간의 흐름 제어가 중요해진다. 이를 해결하기 위해 가상 채널 기법이 종종 함께 사용된다. 가상 채널을 도입하면 서로 다른 패킷의 플릿들이 물리적으로 하나의 링크를 공유하면서도 논리적으로 분리되어, 하나의 채널이 차단되어도 다른 채널을 통해 데이터 흐름이 계속될 수 있다.
6. 설계 및 최적화
6. 설계 및 최적화
6.1. 성능 지표
6.1. 성능 지표
온칩 네트워크의 성능은 여러 지표를 통해 평가된다. 주요 지표로는 처리량, 지연 시간, 에너지 효율, 공정성, 신뢰성 등이 있으며, 이들은 설계 목표에 따라 서로 트레이드오프 관계에 있다.
처리량은 단위 시간당 네트워크를 통해 성공적으로 전달되는 데이터의 양을 의미한다. 일반적으로 초당 전송되는 패킷 수나 비트 수로 측정된다. 지연 시간은 패킷이 소스 노드에서 목적지 노드까지 도달하는 데 걸리는 시간으로, 라우팅 홉 수, 링크 대역폭, 버퍼링 대기 시간 등 여러 요소의 합이다. 에너지 효율은 단위 작업당 소비되는 전력으로, 전력 소모는 온칩 네트워크 설계에서 점점 더 중요한 제약 조건이 되고 있다.
이러한 지표들은 서로 독립적이지 않다. 예를 들어, 처리량을 극대화하기 위해 버퍼 크기를 늘리면 지연 시간과 에너지 소비가 증가할 수 있다. 따라서 설계자는 애플리케이션의 요구사항에 맞춰 적절한 균형점을 찾아야 한다. 성능 평가는 합성 트래픽 패턴(균일 랜덤, 핫스팟 등)이나 실제 애플리케이션 워크로드를 사용한 시뮬레이션을 통해 이루어진다.
6.2. 전력 소모 최적화
6.2. 전력 소모 최적화
네트워크 온 칩의 전력 소모 최적화는 시스템 온 칩의 전체 에너지 효율을 결정하는 핵심 설계 고려사항이다. 온칩 네트워크는 통신 인프라로서 지속적으로 동작하며, 그 구성 요소인 라우터, 링크, 네트워크 인터페이스의 전력 소비가 전체 칩 전력 예산에서 상당 부분을 차지할 수 있다. 따라서 저전력 설계는 처리량과 지연 시간 같은 성능 지표와 함께 균형을 이루어야 한다.
주요 최적화 기법으로는 사용률이 낮은 네트워크 자원의 동적 전원 차단이 있다. 예를 들어, 트래픽이 없는 링크나 유휴 상태의 라우터 일부를 저전력 모드로 전환하여 누설 전류를 포함한 정적 및 동적 전력을 절감한다. 또한, 데이터 전송 방식을 최적화하는 것도 중요하다. 패킷 교환 방식에서 작은 패킷을 큰 플릿으로 묶어 전송하면 헤더 처리에 따른 오버헤드와 전환 활동이 줄어 전력 효율이 향상될 수 있다. 토폴로지와 라우팅 알고리즘 선택도 전력에 영향을 미치며, 통신 거리와 홉 수를 최소화하는 경로를 선택하면 링크 전력 소비를 줄일 수 있다.
고급 기법으로는 워크로드나 트래픽 패턴을 실시간으로 분석하여 네트워크의 동작 주파수와 공급 전압을 동적으로 조절하는 것이 있다. 이를 통해 성능 요구사항을 만족하는 최소한의 에너지만 소비하도록 할 수 있다. 또한, 버퍼의 크기와 가상 채널의 수를 애플리케이션 통신 특성에 맞게 조정하면 불필요한 버퍼 접근과 관련된 전력을 절약할 수 있다. 이러한 전력 소모 최적화 기법들은 다중 코어 프로세서나 FPGA 기반 가속기 같은 고성능 컴퓨팅 시스템과 배터리 구동 임베디드 시스템에서 모두 중요한 설계 목표이다.
6.3. 대역폭 및 지연 시간
6.3. 대역폭 및 지연 시간
대역폭과 지연 시간은 네트워크 온 칩 설계에서 핵심적인 성능 지표이다. 대역폭은 네트워크가 단위 시간당 전송할 수 있는 데이터의 양을 의미하며, 지연 시간은 데이터 패킷이 출발지에서 목적지까지 도달하는 데 걸리는 시간을 의미한다. 이 두 요소는 시스템 전체의 처리량과 응답 속도에 직접적인 영향을 미치기 때문에, 네트워크 온 칩 설계 시 균형 있게 최적화되어야 한다.
네트워크 온 칩의 대역폭은 토폴로지, 링크의 물리적 폭, 라우터의 내부 처리 능력, 그리고 플릿 교환과 같은 전송 방식에 의해 결정된다. 특히, 메쉬나 토러스와 같은 규칙적인 토폴로지는 여러 병렬 경로를 제공하여 전체 네트워크의 집계 대역폭을 높일 수 있다. 그러나 특정 링크나 라우터에 트래픽이 집중되는 혼잡 현상이 발생하면, 실제 활용 가능한 대역폭이 급격히 떨어질 수 있다. 따라서 적응형 라우팅 알고리즘을 통해 트래픽을 분산시키는 것이 대역폭 활용률을 높이는 중요한 방법이다.
지연 시간은 홉 수, 라우터의 파이프라인 단계, 버퍼 대기 시간, 그리고 링크의 신호 전파 지연 등 여러 요소로 구성된다. 패킷 교환 방식에서는 패킷이 각 라우터에서 저장 후 전달되기 때문에 회로 교환에 비해 지연 시간이 길어질 수 있다. 특히 네트워크 부하가 증가하면 버퍼에서의 대기 시간이 지연 시간을 증가시키는 주요 원인이 된다. 이를 완화하기 위해 가상 채널을 사용하거나, 플릿 교환을 통해 패킷을 더 작은 단위로 분할하여 파이프라이닝 효율을 높이는 기법이 사용된다.
대역폭과 지연 시간은 서로 트레이드오프 관계에 있는 경우가 많다. 예를 들어, 대역폭을 높이기 위해 링크 폭을 증가시키면 면적과 전력 소모가 커지며, 버퍼 크기를 늘려 혼잡을 완화하면 지연 시간이 증가할 수 있다. 또한, 낮은 지연 시간을 보장해야 하는 실시간 트래픽과 높은 대역폭이 필요한 벌크 데이터 트래픽이 공존하는 이종 컴퓨팅 환경에서는 서비스 품질 기반의 스케줄링 메커니즘이 필수적이다. 따라서 애플리케이션의 통신 요구사항을 정확히 분석하고, 토폴로지, 라우팅, 흐름 제어를 종합적으로 설계하여 대역폭과 지연 시간 목표를 동시에 만족시키는 것이 중요하다.
7. 응용 분야
7. 응용 분야
7.1. 다중 코어 프로세서
7.1. 다중 코어 프로세서
네트워크 온 칩은 다중 코어 프로세서의 핵심 통신 인프라이다. 기존의 공유 버스 방식은 코어 수가 증가함에 따라 확장성과 대역폭에 한계를 보인다. 이에 반해, 패킷 기반의 네트워크 온 칩은 라우터와 링크로 구성된 규칙적인 구조를 통해 코어 간 통신을 관리하며, 수십 개 이상의 코어를 효율적으로 연결할 수 있다. 이는 멀티코어 프로세서의 성능을 극대화하는 데 필수적이다.
다중 코어 프로세서에서 네트워크 온 칩은 각 코어(CPU), GPU, 특수 목적 가속기 등이 위치한 노드로 구성된다. 각 노드는 네트워크 인터페이스를 통해 온칩 네트워크에 연결되어, 메모리 접근 요청이나 코어 간 데이터 교환과 같은 패킷을 주고받는다. 메쉬나 토러스와 같은 규칙적인 토폴로지를 채택함으로써 통신 경로의 예측 가능성과 확장성을 보장한다.
이러한 구조는 시스템의 전체 처리량을 높이고 통신 지연 시간을 줄이는 데 기여한다. 또한, 네트워크 온 칩은 서비스 품질 메커니즘을 통해 실시간性或 중요도가 높은 트래픽에 우선순위를 부여할 수 있어, 이종 컴퓨팅 환경에서 다양한 워크로드의 요구사항을 충족시킨다. 결과적으로 네트워크 온 칩은 현대 및 미래의 고성능 다중 코어 시스템 온 칩 설계에서 표준적인 인터커넥트 솔루션으로 자리 잡고 있다.
7.2. FPGA 기반 가속기
7.2. FPGA 기반 가속기
FPGA 기반 가속기는 네트워크 온 칩의 주요 응용 분야 중 하나이다. FPGA는 하드웨어 수준에서 프로그램 가능한 논리 블록과 라우팅 리소스를 제공하여, 사용자 정의 하드웨어 가속기를 구현하는 데 적합하다. 이러한 가속기들은 인공지능 추론, 네트워크 패킷 처리, 데이터 압축 등 특정 연산 작업을 CPU나 GPU보다 훨씬 효율적으로 수행할 수 있다. FPGA 내부에 다수의 가속기 유닛이 통합되면, 이들 간의 효율적인 데이터 이동과 통신이 성능의 핵심 요소가 된다. 이때 전통적인 버스나 크로스바 방식은 확장성과 대역폭에서 한계를 보이기 때문에, 네트워크 온 칩이 대안으로 채택된다.
FPGA에 네트워크 온 칩을 통합하는 주요 목적은 통신 인프라를 표준화하고 하드웨어 리소스 사용을 최적화하는 데 있다. 예를 들어, Achronix의 Speedster7t FPGA는 장치 전체에 분포된 2D 네트워크 온 칩을 탑재하여, 여러 메모리 컨트롤러, PCIe 인터페이스, 이더넷 포트 및 사용자 가속기 간의 고대역폭 연결을 제공한다. 이 네트워크 온 칩은 전용 라우팅 경로를 통해 데이터를 전송함으로써, 사용자 로직이 FPGA의 재구성 가능한 리소스를 직접 점유하여 복잡한 통신 경로를 구성하는 부담을 줄인다. 결과적으로 사용자 가속기는 더 많은 리소스를 연산에 집중할 수 있고, FPGA의 배치 및 라우팅 도구도 더 나은 결과를 얻을 수 있어 최종 시스템의 동작 주파수를 높이는 데 기여한다.
그러나 FPGA 기반 가속기 설계에 네트워크 온 칩을 적용할 때는 몇 가지 설계상의 고려사항이 있다. 첫째, 네트워크 온 칩 자체가 고속으로 동작하기 때문에 상대적으로 높은 전력을 소모할 수 있다. 따라서 사용하지 않는 네트워크 요소를 비활성화하거나 동작 주파수를 조정하는 등의 전력 관리 기법이 필요하다. 둘째, 네트워크를 통한 패킷 스위칭은 필연적으로 통신 지연을 추가한다. 매우 낮은 지연 시간이 요구되는 실시간 처리 애플리케이션의 경우, 네트워크 온 칩을 우회하는 직접 연결 경로를 함께 제공하는 것이 바람직할 수 있다. 마지막으로, 트래픽 패턴에 따른 네트워크 혼잡이 성능 병목이 될 수 있으므로, 적절한 토폴로지 선택과 라우팅 알고리즘이 중요하다.
이러한 장단점에도 불구하고, 네트워크 온 칩을 내장한 FPGA는 복잡한 가속기 시스템을 구축하는 데 강력한 플랫폼을 제공한다. 특히 다수의 고대역폭 인터페이스와 사용자 가속기 유닛을 하나의 칩에 통합해야 하는 고성능 컴퓨팅, 네트워크 가속, 금융 기술 응용 분야에서 그 유용성이 두드러진다.
7.3. 임베디드 시스템
7.3. 임베디드 시스템
온칩 네트워크는 임베디드 시스템의 핵심 구성 요소인 시스템 온 칩 설계에서 중요한 역할을 담당한다. 임베디드 시스템은 특정 기능을 수행하도록 설계된 전용 컴퓨팅 시스템으로, 자동차, 의료 기기, 산업 제어 장치, 모바일 기기 등 다양한 분야에 적용된다. 이러한 시스템은 종종 실시간성, 신뢰성, 저전력 소비, 소형화 등 까다로운 요구사항을 충족해야 하며, 이를 위해 고도로 통합된 SoC를 사용한다. SoC 내부의 다중 코어 프로세서, 디지털 신호 처리 장치, 메모리 컨트롤러, 주변장치 인터페이스 등 여러 IP 블록 간의 효율적이고 예측 가능한 통신은 전체 시스템 성능을 좌우하는 핵심 요소가 된다.
기존의 공유 버스나 크로스바 방식은 확장성에 한계가 있어 수십 개 이상의 코어를 통합하는 현대적 임베디드 SoC에는 적합하지 않다. 반면, 패킷 기반의 온칩 네트워크는 확장 가능한 통신 인프라를 제공하여, 복잡한 임베디드 애플리케이션의 통신 수요를 효과적으로 처리한다. 특히, 실시간 운영 체제를 사용하는 시스템에서는 데이터 전송의 최대 지연 시간이 보장되어야 하며, 온칩 네트워크는 서비스 품질 메커니즘을 통해 실시간 트래픽과 비실시간 트래픽을 구분하여 처리할 수 있다. 또한, 저전력 설계가 필수적인 임베디드 환경에서는 사용하지 않는 네트워크 링크나 라우터를 저전력 모드로 전환하는 등 에너지 효율적인 동작이 가능하다.
온칩 네트워크는 자동차 전자 제어 장치나 산업용 로봇과 같이 높은 신뢰성이 요구되는 임베디드 시스템에도 적합하다. 네트워크 토폴로지와 라우팅 알고리즘의 다중 경로 특성을 활용하면, 단일 링크나 라우터의 고장 시에도 대체 경로를 통해 통신을 유지할 수 있는 내결함성을 제공할 수 있다. 이는 시스템의 전체적인 가용성을 높이는 데 기여한다. 결론적으로, 고성능, 실시간성, 저전력, 고신뢰성이라는 임베디드 시스템의 복합적 요구사항을 충족시키기 위해 온칩 네트워크는 점차 필수적인 인터커넥트 솔루션으로 자리잡고 있다.
